
import html2Canvas from 'html2canvas'
import print from 'print-js'
export function testPrint () {
  // debugger;

  testPrint1()

//   setTimeout(function () {
//       testPrint2();
//   }, 3000);
//  // debugger;
//   //testPrint3();
//   setTimeout(function () {
//       testPrint3();
//   }, 3000);
}
// 从 canvas 提取图片 image
function convertCanvasToImage (canvas) {
  // 新Image对象，可以理解为DOM
  var image = new Image()
  // canvas.toDataURL 返回的是一串Base64编码的URL
  // 指定格式 PNG
  image.src = canvas.toDataURL('image/png')
  return image
}
function pagesetup_null () {
  var hkey_root, hkey_path, hkey_key
  hkey_root = 'HKEY_CURRENT_USER'
  hkey_path = '\\Software\\Microsoft\\Internet Explorer\\PageSetup\\'
  try {
      var RegWsh = new ActiveXObject('WScript.Shell')
      hkey_key = 'header'
      RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, '')
      hkey_key = 'footer'
      RegWsh.RegWrite(hkey_root + hkey_path + hkey_key, '')
  } catch (e) { }
}

function getExplorer () {
  var explorer = window.navigator.userAgent
  // ie
  if (explorer.indexOf('MSIE') >= 0 || window.document.documentMode) {
      return 'IE'
  }
  // firefox
  else if (explorer.indexOf('Firefox') >= 0) {
      return 'Firefox'
  }
  // Chrome
  else if (explorer.indexOf('Chrome') >= 0) {
      return 'Chrome'
  }
  // Opera
  else if (explorer.indexOf('Opera') >= 0) {
      return 'Opera'
  }
  // Safari
  else if (explorer.indexOf('Safari') >= 0) {
      return 'Safari'
  }
}

function testPrint1 () {
  html2Canvas(document.getElementById('printDiv')).then(function (canvas) {
  const url = canvas.toDataURL()
  printJS({
    printable: url,
    type: 'image',
    documentTitle: '打印图片',
    style: '@media print { @page {size: auto; margin: 0; } body{margin:0 5px}}', // 解决出现多页打印时第一页空白问题
  })
})

  // html2Canvas(document.getElementById("printDiv"), {
  //     onrendered: function (canvas) {
  //         //添加属性
  //         canvas.setAttribute('id', 'thecanvas');
  //         //读取属性值
  //         // var value= canvas.getAttribute('id');
  //         document.getElementById('ddd').appendChild(canvas);
  //     }
  // });
}
function testPrint2 () {
  var oCanvas = document.getElementById('thecanvas')
  // 调用convertCanvasToImage函数将canvas转化为img形式
  var img = convertCanvasToImage(oCanvas)
  // 将img插入容器

  document.getElementById('img').append(img)
  // this.$refs.img.append(img);
  // $('#img').append(img);
}
function testPrint3 () {
  if (getExplorer() == 'IE') {
      pagesetup_null()
  }

  const style = '@media print { @page {size: auto; margin: 0; } body{margin:0 5px}}'// 打印时去掉眉页眉尾
    printJS({
        printable: document.getElementById('img'), // 标签元素id
        type: 'html',
        header: '',
        targetStyles: ['*'],
        style,
      })

      // 各个配置项
      // printable:要打印的id。
      // type:可以是 html 、pdf、 json 等。
      // properties:是打印json时所需要的数据属性。
      // gridHeaderStyle和gridStyle都是打印json时可选的样式。
      // repeatTableHeader:在打印JSON数据时使用。设置为时false，数据表标题将仅在第一页显示。
      // scanStyles:设置为false时，库将不处理应用于正在打印的html的样式。使用css参数时很有用，此时自己设置的原来想要打印的样式就会失效，在打印预览时可以看到效果
      // targetStyles: [’*’],这样设置继承了页面要打印元素原有的css属性。
      // style:传入自定义样式的字符串，使用在要打印的html页面 也就是纸上的样子。
      // ignoreElements：传入要打印的div中的子元素id，使其不打印。非常好用
  // 根据div标签ID拿到div中的局部内容
 // var  bdhtml = window.document.body.innerHTML;
 // var jubuData = document.getElementById("img").innerHTML;
  // 把获取的 局部div内容赋给body标签, 相当于重置了 body里的内容
 // window.document.body.innerHTML = jubuData;
  // 调用打印功能
 // window.print();
  // window.document.body.innerHTML = bdhtml;//重新给页面内容赋值；
  // $(".save-box").css("display", "block");
  // $(".xinjian").css("display", "block");
  // $(".cont-box").css("padding-top", "21px");
  // $("input[name='mainLeaderFile']").css("display", "block");
  // return false;
}
